<?  
  set_time_limit(4500);
  /* Se asegura que el archivo es incluido por el index */
    defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Estadistica_portal_exe( $this );


	class Estadistica_portal_exe extends Exe
	{
	function Estadistica_portal_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
	function publish()
		{
			$oDatabaseWeb = openDB( DB_MYSQL , '10.10.1.83', 'st', 'sclaros' , 'jamonyqueso');
			$oDatabaseWeb->connect();
			$ok = $oDatabaseWeb->execute("delete from tur_estadistica");
			$cSql = "select * from gtEstadisticaPortal";
			
			$nIndex= 0;
			$oRecordset = $this->oDatabase->recordset($cSql);
			while ( $oRecordset->moveNext() )
			{
				$bOk  = $oDatabaseWeb->insert("tur_estadistica"
								,"id", ++$nIndex
								,"mes", $oRecordset->aFields["ncMes"]
								,"anio", $oRecordset->aFields["ncAnio"]
								,"visitas", $oRecordset->aFields["nqVisitasMensuales"]
								,"paginas", $oRecordset->aFields["nqPaginas"]
								,"usuarios", $oRecordset->aFields["nqUsuarios"]
								,"transferencia", $oRecordset->aFields['nqTransferencia']
								,"consumo", $oRecordset->aFields["nqTransferencia"] / $oRecordset->aFields['nqVisitasMensuales']
								,"uso", $oRecordset->aFields["nqPaginas"] / $oRecordset->aFields['nqVisitasMensuales']
								);
			}
		}
		
		function import($mes, $anio)
		{
			$aMeses = array ( "", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
			$cMesRow = $aMeses[$mes] . ' ' . $anio ;
			$cAnioMes = $anio . str_pad( $mes , 2, '0' , STR_PAD_LEFT) ;
			
				$host = "10.10.1.44";
				$user = "turismo";
				$pass = "tur2004";
				$st = fsockopen($host, 80, $erstr, $errno, 5);
				if (!$st) 
				{
					addMessage( "$errstr ($errno) ");
					return false;
				} 
			// Carga la Pagina de Estadisticas del Mes de bue.gov.ar en $cSalida
				$page = "http://10.10.1.44/estadisticas/visitasweb/$anio/turismo/";
				$out  = "GET $page HTTP/1.1\r\nHost:  {$host}\r\nConnection: Close\r\nAuthorization: Basic ". base64_encode($user.":".$pass)."\r\n\r\n";
				fwrite($st, $out );
				for ( $cSalida = ""; !feof($st); $cSalida .=fgets($st, 128) );
			// Hace el parse del archivo en el Objeto oHtml
			$oHtml = parseHtml( $cSalida );
			// Loop por cada fila de la tabla hasta encontrar el mes actual
			foreach( $oHtml->tags['html'][0]->tags['body'][0]->tags['center'][0]->tags['p'][0]->tags['p'][0]->tags['table'][0]->tags['tr'] as  $row )
			{
				if ( count($row->tags['td']) == 11 )
				{
					if ( $cMesRow == trim($row->tags['td'][0]->getText())  )
					{
						$aFields['nqUsuarios'] 				= $row->tags['td'][5]->getText() ;
						$aFields['nqTransferencia']		= $row->tags['td'][6]->getText() ;
						$aFields['nqVisitasMensuales']	= $row->tags['td'][7]->getText();
						$aFields['nqPaginas']				= $row->tags['td'][8]->getText() ;
						$aFields['nqFiles']						= $row->tags['td'][9]->getText() ;
						break;
					} 
				}
				if ( count($row->tags['td']) == 13 )
				{
					if ( $cMesRow == trim($row->tags['td'][0]->getText())  )
					{
						$aFields['nqUsuarios'] 				= $row->tags['td'][5]->getText() ;
						$aFields['nqTransferencia']		= $row->tags['td'][6]->getText() ;
						$aFields['nqVisitasMensuales']	= $row->tags['td'][9]->getText();
						$aFields['nqPaginas']				= $row->tags['td'][10]->getText() ;
						$aFields['nqFiles']						= $row->tags['td'][11]->getText() ;
						break;
					} 
				}
			}
			// Carga la Pagina de Estadisticas del Mes de bue.gov.ar en $cSalida
				$st = fsockopen($host, 80, $erstr, $errno, 5);
				//$page = "http://10.10.1.44/estadisticas/visitasweb/$anio/wap/url__$cAnioMes.html";
				$page = "http://10.10.1.44/estadisticas/visitasweb/$anio/wap/";
				$out  = "GET $page HTTP/1.1\r\nHost:  {$host}\r\nConnection: Close\r\nAuthorization: Basic ". base64_encode($user.":".$pass)."\r\n\r\n";
				fwrite($st, $out );
				for ( $cSalida = ""; !feof($st); $cSalida .=fgets($st, 128) );
			// Hace el parse del archivo en el Objeto oHtml
			$oHtml = parseHtml( $cSalida );
			// Loop por cada fila de la tabla hasta encontrar el mes actual
			foreach( $oHtml->tags['html'][0]->tags['body'][0]->tags['center'][0]->tags['p'][0]->tags['p'][0]->tags['table'][0]->tags['tr'] as  $row )
			{
				if ( count($row->tags['td']) == 11 )
				{
					if ( $cMesRow == trim($row->tags['td'][0]->getText())  )
					{
						$aFields['nqVisitasWap']	= $row->tags['td'][7]->getText();
						break;
					} 
				}
				if ( count($row->tags['td']) == 13 )
				{
					if ( $cMesRow == trim($row->tags['td'][0]->getText())  )
					{
						$aFields['nqVisitasWap']	= $row->tags['td'][9]->getText();
						break;
					} 
				}
			}
			// Carga la Pagina de Estadisticas del Mes de bue.gov.ar en $cSalida
				$st = fsockopen($host, 80, $erstr, $errno, 5);
				$page = "http://10.10.1.44/estadisticas/visitasweb/$anio/blog_viajabsas/";
				$out  = "GET $page HTTP/1.1\r\nHost:  {$host}\r\nConnection: Close\r\nAuthorization: Basic ". base64_encode($user.":".$pass)."\r\n\r\n";
				fwrite($st, $out );
				for ( $cSalida = ""; !feof($st); $cSalida .=fgets($st, 128) );
			// Hace el parse del archivo en el Objeto oHtml
			$oHtml = parseHtml( $cSalida );
			// Loop por cada fila de la tabla hasta encontrar el mes actual
			foreach( $oHtml->tags['html'][0]->tags['body'][0]->tags['center'][0]->tags['p'][0]->tags['p'][0]->tags['table'][0]->tags['tr'] as  $row )
			{
				if ( count($row->tags['td']) == 11 )
				{
					if ( $cMesRow == trim($row->tags['td'][0]->getText())  )
					{
						$aFields['nqVisitasBlog']	= $row->tags['td'][7]->getText();
						break;
					} 
				}
				if ( count($row->tags['td']) == 13 )
				{
					if ( $cMesRow == trim($row->tags['td'][0]->getText())  )
					{
						$aFields['nqVisitasBlog']	= $row->tags['td'][9]->getText();
						break;
					} 
				}
			}
			// Carga la Pagina de Estadisticas del Mes de bue.gov.ar en $cSalida
				$st = fsockopen($host, 80, $erstr, $errno, 5);
				$page = "http://10.10.1.44/estadisticas/visitasweb/$anio/turismo/usage_$cAnioMes.html";
				$out  = "GET $page HTTP/1.1\r\nHost:  {$host}\r\nConnection: Close\r\nAuthorization: Basic ". base64_encode($user.":".$pass)."\r\n\r\n";
				fwrite($st, $out );
				for ( $cSalida = ""; !feof($st); $cSalida .=fgets($st, 128) );
				// Hace el parse del archivo en el Objeto oHtml
				$oHtml = parseHtml( $cSalida );
				// Loop por cada fila de la tabla hasta encontrar el mes actual
				$nqVisitasMax = -1;
				$nqVisitasMin = 99999;
				$nqDias = $nqVisitasDiarias  = $nVisitasDiariasMinDia = $nVisitasDiariasMaxDia = 0;
				foreach( $oHtml->tags['html'][0]->tags['body'][0]->tags['center'][0]->tags['p'][0]->tags['p'][0]->tags['p'][0]->tags['p'][0]->tags['table'][0]->tags['tr'] as  $row )
				{
					if ( count($row->tags['td']) == 17 || count($row->tags['td']) == 13 ) 
					{
						$nVisitasDiarias	= $row->tags['td'][7]->getText();
						$nqVisitasDiarias += $nVisitasDiarias;
						if ( $nVisitasDiarias > $nqVisitasMax  ) 
						{
							$nqVisitasMax = $nVisitasDiarias ;
							$nVisitasDiariasMaxDia = $row->tags['td'][0]->getText();
						}
						if ( $nVisitasDiarias < $nqVisitasMin  ) 
						{
							$nqVisitasMin = $nVisitasDiarias ;
							$nVisitasDiariasMinDia = $row->tags['td'][0]->getText();
						}
						$nqDias ++;
					}
				}
			$aDias = array(0, 31,28,31,30,31,30, 31,31,30, 31,30,31);
			if ( $nqDias < $aDias[$mes] ) echo "Ojo hay menos dias procesados !!, hay $nqDias en vez de " . $aDias[$mes];
			$aFields['nqVisitasMax'] = $nqVisitasMax;
			$aFields['nVisitasDiariasMaxDia'] = $nVisitasDiariasMaxDia;
			$aFields['nqVisitasMin'] = $nqVisitasMin;
			$aFields['nVisitasDiariasMinDia'] = $nVisitasDiariasMinDia;
			$aFields['nqVisitasDiarias'] = ($nqVisitasDiarias / $nqDias);
			fclose($st);
			return $aFields;
		}
		// AGREGAR_ESTADISTICAPORTAL
		function insert()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Estadistica_portal_frm' );
			extract( $oForm->getFieldArray() );
			// Busca el siguiente id
			$ncEstadisticaPortal      = $this->oDatabase->nextKey("gtEstadisticaPortal", "ncEstadisticaPortal"  );
			$this->oDatabase->insert("gtEstadisticaPortal"
								,"ncMes", $ncMes
								,"ncAnio", $ncAnio
								,"nqUsuarios", $nqUsuarios
								,"nqTransferencia", $nqTransferencia
								,"nqFiles", $nqFiles
								,"nqPaginas", $nqPaginas
								,"nqVisitasMensuales", $nqVisitasMensuales
								,"nqVisitasDiarias", $nqVisitasDiarias
								,"nqVisitasMin", $nqVisitasMin
								,"nqVisitasMax", $nqVisitasMax
								,"nqSuscriptosEspeciales", $nqSuscriptosEspeciales
								,"nqSuscriptosExpos", $nqSuscriptosExpos
								,"nqSuscriptosAgenda", $nqSuscriptosAgenda
								,"nqMailsInfoBue", $nqMailsInfoBue
								,"nqVisitasWap", $nqVisitasWap
								,"nqLLamadasIntAGM", $nqLLamadasIntAGM
								,"nqLLamadasAGM", $nqLLamadasAGM
								,"nqDuracionAGM", $nqDuracionAGM
								,"nqDuracionRealAGM", $nqDuracionRealAGM
								,"nVisitasDiariasMinDia", $nVisitasDiariasMinDia
								,"nVisitasDiariasMaxDia", $nVisitasDiariasMaxDia
								,"nqVisitasBlog", $nqVisitasBlog
								,"cTopRecorridoAGM", $cTopRecorridoAGM
								,"cTopAtractivoAGM", $cTopAtractivoAGM);
			$oForm->reset();
		}
		
		// ELIMINAR_ESTADISTICAPORTAL
		function delete()
		{
			$ncMes = getParam( 'ncMes' );
			$ncAnio = getParam( 'ncAnio' );
			$this->oDatabase->delete("gtEstadisticaPortal","ncMes", $ncMes,"ncAnio", $ncAnio );
		}
		
		// MODIFICAR_ESTADISTICAPORTAL
		function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Estadistica_portal_frm' );
			extract( $oForm->getFieldArray() );
			$this->oDatabase->update("gtEstadisticaPortal"
								,"nqUsuarios", $nqUsuarios
								,"nqTransferencia", $nqTransferencia
								,"nqFiles", $nqFiles
								,"nqPaginas", $nqPaginas
								,"nqVisitasMensuales", $nqVisitasMensuales
								,"nqVisitasDiarias", $nqVisitasDiarias
								,"nqVisitasMin", $nqVisitasMin
								,"nqVisitasMax", $nqVisitasMax
								,"nqSuscriptosEspeciales", $nqSuscriptosEspeciales
								,"nqSuscriptosExpos", $nqSuscriptosExpos
								,"nqSuscriptosAgenda", $nqSuscriptosAgenda
								,"nqMailsInfoBue", $nqMailsInfoBue
								,"nqVisitasWap", $nqVisitasWap
								,"nqLLamadasIntAGM", $nqLLamadasIntAGM
								,"nqLLamadasAGM", $nqLLamadasAGM
								,"nqDuracionAGM", $nqDuracionAGM
								,"nqDuracionRealAGM", $nqDuracionRealAGM
								,"nVisitasDiariasMinDia", $nVisitasDiariasMinDia
								,"nqVisitasBlog", $nqVisitasBlog
								,"nVisitasDiariasMaxDia", $nVisitasDiariasMaxDia
								,"cTopRecorridoAGM", $cTopRecorridoAGM
								,"cTopAtractivoAGM", $cTopAtractivoAGM
								,"WHERE"
								 ,"ncMes", $ncMes
								 ,"ncAnio", $ncAnio);
			$oForm->reset();
		}
	}
?>